using System;
using System.Collections.Generic;
using ComposicionPedidos;

namespace AdministracionPedidos
{
	/// <summary>
	/// Summary description for ReaderPedido.
	/// </summary>
	public class ReaderPedido
	{
		public ReaderPedido()
		{
			
		}

        public Dictionary<Insumo,int> getInsumos(Pedido pedido)
        {
            Dictionary<Insumo, int> insumosUtilizados = new Dictionary<Insumo, int>();
            List<PartePedido> partes = pedido.PartesPedido;
            List<Bebida> bebidas = pedido.ListaBebidas;

            foreach (PartePedido parte in partes)
            {
                List<ProductoCantidad> productosCantidad = parte.getProductosCantidad();

                foreach (ProductoCantidad pc in productosCantidad)
                {
                    ProductoPizzeria pp = pc.getProducto();
                    List<Insumo> listaInsumos = pp.getInsumos();

                    foreach (Insumo i in listaInsumos)
                    {
                        if (insumosUtilizados.ContainsKey(i))
                        {
                            insumosUtilizados[i] = insumosUtilizados[i] + 1;
                        }
                        else
                        {
                            insumosUtilizados.Add(i, 1);
                        }
                    }
                }
            }

            foreach (Bebida bebida in bebidas)
            {
                Insumo i = bebida.getInsumo();

                if (insumosUtilizados.ContainsKey(i))
                {
                    insumosUtilizados[i] = insumosUtilizados[i] + 1;
                }
                else
                {
                    insumosUtilizados.Add(i, 1);
                }
            }

            return insumosUtilizados;
        }
	}
}
